package com.rc.web.converter;

import com.rc.pojo.dto.adoption.AdoptionAddDTO;
import com.rc.pojo.dto.adoption.AdoptionUpdateDTO;
import com.rc.pojo.po.Adoption;
import com.rc.pojo.vo.adoption.AdoptionVO;
import org.mapstruct.Mapper;

/**
 * 领养信息转换器
 * 使用MapStruct实现DTO、PO、VO之间的转换
 */
@Mapper(componentModel = "spring") // 声明为Spring组件
public interface AdoptionConverter {

    /**
     * 将新增DTO转换为PO
     * @param dto 领养新增数据传输对象
     * @return 领养持久化对象
     */
    Adoption addDTO2PO(AdoptionAddDTO dto);

    /**
     * 将更新DTO转换为PO
     * @param dto 领养更新数据传输对象
     * @return 领养持久化对象
     */
    Adoption updateDTO2PO(AdoptionUpdateDTO dto);

    /**
     * 将领养PO转换为VO
     * @param adoption 领养持久化对象
     * @return 领养视图对象
     */
    AdoptionVO toVO(Adoption adoption);
}
